'''实现输出100以内质数的功能'''

for i in range(2,101):
    count = 0
    for j in range(1,i+1):
        if i % j == 0:
            count += 1
    if count == 2:
        print(f'{i}是质数')

# 质数：大于1，且只能被1和自身整除的数
primes = []
for num in range(2, 101):
    is_prime = True
    # 只需检查到平方根即可优化效率
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            is_prime = False
            break  # 发现因子则立刻终止循环
    if is_prime:
        primes.append(num)

print("100以内的质数：")
print(primes)


# def sieve(n):
#     # 创建标记数组，初始全部标记为True（质数）
#     is_prime = [True] * (n + 1)
#     is_prime[0:2] = [False, False]  # 0和1不是质数
#
#     # 从2开始筛选
#     for i in range(2, int(n ** 0.5) + 1):
#         if is_prime[i]:
#             # 将i的倍数标记为False
#             is_prime[i * i: n + 1: i] = [False] * len(is_prime[i * i: n + 1: i])
#
#     # 返回所有标记为True的索引
#     return [i for i, prime in enumerate(is_prime) if prime]
#
#
# print("100以内的质数：")
# print(sieve(100))

